#define MAXSIZE 1000001

typedef struct {
    int *value;
} MyHashSet;


MyHashSet* myHashSetCreate() {
    MyHashSet *obj=(MyHashSet *)malloc(sizeof(MyHashSet));
    obj->value=(int*)malloc(sizeof(int)*MAXSIZE);
    memset(obj->value, -1, sizeof(int) * MAXSIZE);
    return obj;
}

void myHashSetAdd(MyHashSet* obj, int key) {
    if(obj->value[key]==-1)
        obj->value[key]=key;
}

void myHashSetRemove(MyHashSet* obj, int key) {
    obj->value[key]=-1;
}

bool myHashSetContains(MyHashSet* obj, int key) {
    return obj->value[key]!=-1;
}

void myHashSetFree(MyHashSet* obj) {
    free(obj->value);
    free(obj);
}